<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: HDR imaging</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> |
<a href="#enum-members">Enumerations</a> |
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">HDR imaging<div class="ingroups"><a class="el" href="../../d1/d0d/group__photo.html">Computational Photography</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/df2/classcv_1_1AlignExposures.html">cv::AlignExposures</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The base class for algorithms that align images of the same scene with different exposures.  <a href="../../d4/df2/classcv_1_1AlignExposures.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/db6/classcv_1_1AlignMTB.html">cv::AlignMTB</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">This algorithm converts images to median threshold bitmaps (1 for pixels brighter than median luminance and 0 otherwise) and than aligns the resulting bitmaps using bit operations.  <a href="../../d7/db6/classcv_1_1AlignMTB.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/de3/classcv_1_1CalibrateCRF.html">cv::CalibrateCRF</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The base class for camera response calibration algorithms.  <a href="../../dd/de3/classcv_1_1CalibrateCRF.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d27/classcv_1_1CalibrateDebevec.html">cv::CalibrateDebevec</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Inverse camera response function is extracted for each brightness value by minimizing an objective function as linear system. Objective function is constructed using pixel values on the same position in all images, extra term is added to make the result smoother.  <a href="../../da/d27/classcv_1_1CalibrateDebevec.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d30/classcv_1_1CalibrateRobertson.html">cv::CalibrateRobertson</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Inverse camera response function is extracted for each brightness value by minimizing an objective function as linear system. This algorithm uses all image pixels.  <a href="../../d3/d30/classcv_1_1CalibrateRobertson.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d62/classcv_1_1MergeDebevec.html">cv::MergeDebevec</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The resulting HDR image is calculated as weighted average of the exposures considering exposure values and camera response.  <a href="../../df/d62/classcv_1_1MergeDebevec.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d5e/classcv_1_1MergeExposures.html">cv::MergeExposures</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The base class algorithms that can merge exposure sequence to a single image.  <a href="../../d6/d5e/classcv_1_1MergeExposures.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/dd6/classcv_1_1MergeMertens.html">cv::MergeMertens</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Pixels are weighted using contrast, saturation and well-exposedness measures, than images are combined using laplacian pyramids.  <a href="../../d7/dd6/classcv_1_1MergeMertens.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d5b/classcv_1_1MergeRobertson.html">cv::MergeRobertson</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The resulting HDR image is calculated as weighted average of the exposures considering exposure values and camera response.  <a href="../../d7/d5b/classcv_1_1MergeRobertson.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d5e/classcv_1_1Tonemap.html">cv::Tonemap</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class for tonemapping algorithms - tools that are used to map HDR image to 8-bit range.  <a href="../../d8/d5e/classcv_1_1Tonemap.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d53/classcv_1_1TonemapDrago.html">cv::TonemapDrago</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Adaptive logarithmic mapping is a fast global tonemapping algorithm that scales the image in logarithmic domain.  <a href="../../da/d53/classcv_1_1TonemapDrago.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d76/classcv_1_1TonemapMantiuk.html">cv::TonemapMantiuk</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">This algorithm transforms image to contrast using gradients on all levels of gaussian pyramid, transforms contrast values to HVS response and scales the response. After this the image is reconstructed from new contrast values.  <a href="../../de/d76/classcv_1_1TonemapMantiuk.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dec/classcv_1_1TonemapReinhard.html">cv::TonemapReinhard</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">This is a global tonemapping operator that models human visual system.  <a href="../../d0/dec/classcv_1_1TonemapReinhard.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaf454b747a111dc9819419b99807ae7ac"><td align="right" class="memItemLeft" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="../../d6/df5/group__photo__hdr.html#ggaf454b747a111dc9819419b99807ae7aca11377cb33f0a607d50cdc65e529529a1">cv::LDR_SIZE</a> = 256
 }</td></tr>
<tr class="separator:gaf454b747a111dc9819419b99807ae7ac"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga2f1fafc885a5d79dbfb3542e08db0244"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d7/db6/classcv_1_1AlignMTB.html">AlignMTB</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/df5/group__photo__hdr.html#ga2f1fafc885a5d79dbfb3542e08db0244">cv::createAlignMTB</a> (int max_bits=6, int exclude_range=4, bool cut=true)</td></tr>
<tr class="memdesc:ga2f1fafc885a5d79dbfb3542e08db0244"><td class="mdescLeft"> </td><td class="mdescRight">Creates <a class="el" href="../../d7/db6/classcv_1_1AlignMTB.html" title="This algorithm converts images to median threshold bitmaps (1 for pixels brighter than median luminan...">AlignMTB</a> object.  <a href="../../d6/df5/group__photo__hdr.html#ga2f1fafc885a5d79dbfb3542e08db0244">More...</a><br/></td></tr>
<tr class="separator:ga2f1fafc885a5d79dbfb3542e08db0244"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7fed9707ad5f2cc0e633888867109f90"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../da/d27/classcv_1_1CalibrateDebevec.html">CalibrateDebevec</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/df5/group__photo__hdr.html#ga7fed9707ad5f2cc0e633888867109f90">cv::createCalibrateDebevec</a> (int samples=70, float lambda=10.0f, bool random=false)</td></tr>
<tr class="memdesc:ga7fed9707ad5f2cc0e633888867109f90"><td class="mdescLeft"> </td><td class="mdescRight">Creates <a class="el" href="../../da/d27/classcv_1_1CalibrateDebevec.html" title="Inverse camera response function is extracted for each brightness value by minimizing an objective fu...">CalibrateDebevec</a> object.  <a href="../../d6/df5/group__photo__hdr.html#ga7fed9707ad5f2cc0e633888867109f90">More...</a><br/></td></tr>
<tr class="separator:ga7fed9707ad5f2cc0e633888867109f90"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae77813a21cd351a596619e5ff013be5d"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d3/d30/classcv_1_1CalibrateRobertson.html">CalibrateRobertson</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/df5/group__photo__hdr.html#gae77813a21cd351a596619e5ff013be5d">cv::createCalibrateRobertson</a> (int max_iter=30, float <a class="el" href="../../d7/d1b/group__imgproc__misc.html#gae8a4a146d1ca78c626a53577199e9c57">threshold</a>=0.01f)</td></tr>
<tr class="memdesc:gae77813a21cd351a596619e5ff013be5d"><td class="mdescLeft"> </td><td class="mdescRight">Creates <a class="el" href="../../d3/d30/classcv_1_1CalibrateRobertson.html" title="Inverse camera response function is extracted for each brightness value by minimizing an objective fu...">CalibrateRobertson</a> object.  <a href="../../d6/df5/group__photo__hdr.html#gae77813a21cd351a596619e5ff013be5d">More...</a><br/></td></tr>
<tr class="separator:gae77813a21cd351a596619e5ff013be5d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa8eab36bc764abb2a225db7c945f87f9"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../df/d62/classcv_1_1MergeDebevec.html">MergeDebevec</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/df5/group__photo__hdr.html#gaa8eab36bc764abb2a225db7c945f87f9">cv::createMergeDebevec</a> ()</td></tr>
<tr class="memdesc:gaa8eab36bc764abb2a225db7c945f87f9"><td class="mdescLeft"> </td><td class="mdescRight">Creates <a class="el" href="../../df/d62/classcv_1_1MergeDebevec.html" title="The resulting HDR image is calculated as weighted average of the exposures considering exposure value...">MergeDebevec</a> object.  <a href="../../d6/df5/group__photo__hdr.html#gaa8eab36bc764abb2a225db7c945f87f9">More...</a><br/></td></tr>
<tr class="separator:gaa8eab36bc764abb2a225db7c945f87f9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga79d59aa3cb3a7c664e59a4b5acc1ccb6"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d7/dd6/classcv_1_1MergeMertens.html">MergeMertens</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/df5/group__photo__hdr.html#ga79d59aa3cb3a7c664e59a4b5acc1ccb6">cv::createMergeMertens</a> (float contrast_weight=1.0f, float saturation_weight=1.0f, float exposure_weight=0.0f)</td></tr>
<tr class="memdesc:ga79d59aa3cb3a7c664e59a4b5acc1ccb6"><td class="mdescLeft"> </td><td class="mdescRight">Creates <a class="el" href="../../d7/dd6/classcv_1_1MergeMertens.html" title="Pixels are weighted using contrast, saturation and well-exposedness measures, than images are combine...">MergeMertens</a> object.  <a href="../../d6/df5/group__photo__hdr.html#ga79d59aa3cb3a7c664e59a4b5acc1ccb6">More...</a><br/></td></tr>
<tr class="separator:ga79d59aa3cb3a7c664e59a4b5acc1ccb6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga460d4a1df1a7e8cdcf7445bb87a8fb78"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d7/d5b/classcv_1_1MergeRobertson.html">MergeRobertson</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/df5/group__photo__hdr.html#ga460d4a1df1a7e8cdcf7445bb87a8fb78">cv::createMergeRobertson</a> ()</td></tr>
<tr class="memdesc:ga460d4a1df1a7e8cdcf7445bb87a8fb78"><td class="mdescLeft"> </td><td class="mdescRight">Creates <a class="el" href="../../d7/d5b/classcv_1_1MergeRobertson.html" title="The resulting HDR image is calculated as weighted average of the exposures considering exposure value...">MergeRobertson</a> object.  <a href="../../d6/df5/group__photo__hdr.html#ga460d4a1df1a7e8cdcf7445bb87a8fb78">More...</a><br/></td></tr>
<tr class="separator:ga460d4a1df1a7e8cdcf7445bb87a8fb78"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabcbd653140b93a1fa87ccce94548cd0d"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d8/d5e/classcv_1_1Tonemap.html">Tonemap</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/df5/group__photo__hdr.html#gabcbd653140b93a1fa87ccce94548cd0d">cv::createTonemap</a> (float gamma=1.0f)</td></tr>
<tr class="memdesc:gabcbd653140b93a1fa87ccce94548cd0d"><td class="mdescLeft"> </td><td class="mdescRight">Creates simple linear mapper with gamma correction.  <a href="../../d6/df5/group__photo__hdr.html#gabcbd653140b93a1fa87ccce94548cd0d">More...</a><br/></td></tr>
<tr class="separator:gabcbd653140b93a1fa87ccce94548cd0d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga72bf92bb6b8653ee4be650ac01cf50b6"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../da/d53/classcv_1_1TonemapDrago.html">TonemapDrago</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/df5/group__photo__hdr.html#ga72bf92bb6b8653ee4be650ac01cf50b6">cv::createTonemapDrago</a> (float gamma=1.0f, float saturation=1.0f, float bias=0.85f)</td></tr>
<tr class="memdesc:ga72bf92bb6b8653ee4be650ac01cf50b6"><td class="mdescLeft"> </td><td class="mdescRight">Creates <a class="el" href="../../da/d53/classcv_1_1TonemapDrago.html" title="Adaptive logarithmic mapping is a fast global tonemapping algorithm that scales the image in logarith...">TonemapDrago</a> object.  <a href="../../d6/df5/group__photo__hdr.html#ga72bf92bb6b8653ee4be650ac01cf50b6">More...</a><br/></td></tr>
<tr class="separator:ga72bf92bb6b8653ee4be650ac01cf50b6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3b3f3bf083b7515802f039a6a70f2d21"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../de/d76/classcv_1_1TonemapMantiuk.html">TonemapMantiuk</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/df5/group__photo__hdr.html#ga3b3f3bf083b7515802f039a6a70f2d21">cv::createTonemapMantiuk</a> (float gamma=1.0f, float scale=0.7f, float saturation=1.0f)</td></tr>
<tr class="memdesc:ga3b3f3bf083b7515802f039a6a70f2d21"><td class="mdescLeft"> </td><td class="mdescRight">Creates <a class="el" href="../../de/d76/classcv_1_1TonemapMantiuk.html" title="This algorithm transforms image to contrast using gradients on all levels of gaussian pyramid...">TonemapMantiuk</a> object.  <a href="../../d6/df5/group__photo__hdr.html#ga3b3f3bf083b7515802f039a6a70f2d21">More...</a><br/></td></tr>
<tr class="separator:ga3b3f3bf083b7515802f039a6a70f2d21"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadabe7f6bf1fa96ad0fd644df9182c2fb"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d0/dec/classcv_1_1TonemapReinhard.html">TonemapReinhard</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/df5/group__photo__hdr.html#gadabe7f6bf1fa96ad0fd644df9182c2fb">cv::createTonemapReinhard</a> (float gamma=1.0f, float intensity=0.0f, float light_adapt=1.0f, float color_adapt=0.0f)</td></tr>
<tr class="memdesc:gadabe7f6bf1fa96ad0fd644df9182c2fb"><td class="mdescLeft"> </td><td class="mdescRight">Creates <a class="el" href="../../d0/dec/classcv_1_1TonemapReinhard.html" title="This is a global tonemapping operator that models human visual system. ">TonemapReinhard</a> object.  <a href="../../d6/df5/group__photo__hdr.html#gadabe7f6bf1fa96ad0fd644df9182c2fb">More...</a><br/></td></tr>
<tr class="separator:gadabe7f6bf1fa96ad0fd644df9182c2fb"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>This section describes high dynamic range imaging algorithms namely tonemapping, exposure alignment, camera calibration with multiple exposures and exposure fusion. </p>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gaf454b747a111dc9819419b99807ae7ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf454b747a111dc9819419b99807ae7ac">◆ </a></span>anonymous enum</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaf454b747a111dc9819419b99807ae7aca11377cb33f0a607d50cdc65e529529a1"></a>LDR_SIZE <div class="python_language">Python: cv.LDR_SIZE</div></td><td class="fielddoc"></td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga2f1fafc885a5d79dbfb3542e08db0244"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2f1fafc885a5d79dbfb3542e08db0244">◆ </a></span>createAlignMTB()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d7/db6/classcv_1_1AlignMTB.html">AlignMTB</a>&gt; cv::createAlignMTB </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>max_bits</em> = <code>6</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>exclude_range</em> = <code>4</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool </td>
          <td class="paramname"><em>cut</em> = <code>true</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.createAlignMTB(</td><td class="paramname">[, max_bits[, exclude_range[, cut]]]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<p>Creates <a class="el" href="../../d7/db6/classcv_1_1AlignMTB.html" title="This algorithm converts images to median threshold bitmaps (1 for pixels brighter than median luminan...">AlignMTB</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">max_bits</td><td>logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are usually good enough (31 and 63 pixels shift respectively). </td></tr>
    <tr><td class="paramname">exclude_range</td><td>range for exclusion bitmap that is constructed to suppress noise around the median value. </td></tr>
    <tr><td class="paramname">cut</td><td>if true cuts images, otherwise fills the new regions with zeros. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="ga7fed9707ad5f2cc0e633888867109f90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7fed9707ad5f2cc0e633888867109f90">◆ </a></span>createCalibrateDebevec()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../da/d27/classcv_1_1CalibrateDebevec.html">CalibrateDebevec</a>&gt; cv::createCalibrateDebevec </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>samples</em> = <code>70</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>lambda</em> = <code>10.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool </td>
          <td class="paramname"><em>random</em> = <code>false</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.createCalibrateDebevec(</td><td class="paramname">[, samples[, lambda[, random]]]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<p>Creates <a class="el" href="../../da/d27/classcv_1_1CalibrateDebevec.html" title="Inverse camera response function is extracted for each brightness value by minimizing an objective fu...">CalibrateDebevec</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">samples</td><td>number of pixel locations to use </td></tr>
    <tr><td class="paramname">lambda</td><td>smoothness term weight. Greater values produce smoother results, but can alter the response. </td></tr>
    <tr><td class="paramname">random</td><td>if true sample pixel locations are chosen at random, otherwise they form a rectangular grid. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="gae77813a21cd351a596619e5ff013be5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae77813a21cd351a596619e5ff013be5d">◆ </a></span>createCalibrateRobertson()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d3/d30/classcv_1_1CalibrateRobertson.html">CalibrateRobertson</a>&gt; cv::createCalibrateRobertson </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>max_iter</em> = <code>30</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>threshold</em> = <code>0.01f</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.createCalibrateRobertson(</td><td class="paramname">[, max_iter[, threshold]]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<p>Creates <a class="el" href="../../d3/d30/classcv_1_1CalibrateRobertson.html" title="Inverse camera response function is extracted for each brightness value by minimizing an objective fu...">CalibrateRobertson</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">max_iter</td><td>maximal number of Gauss-Seidel solver iterations. </td></tr>
    <tr><td class="paramname">threshold</td><td>target difference between results of two successive steps of the minimization. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="gaa8eab36bc764abb2a225db7c945f87f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa8eab36bc764abb2a225db7c945f87f9">◆ </a></span>createMergeDebevec()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../df/d62/classcv_1_1MergeDebevec.html">MergeDebevec</a>&gt; cv::createMergeDebevec </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.createMergeDebevec(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<p>Creates <a class="el" href="../../df/d62/classcv_1_1MergeDebevec.html" title="The resulting HDR image is calculated as weighted average of the exposures considering exposure value...">MergeDebevec</a> object. </p>
</div>
</div>
<a id="ga79d59aa3cb3a7c664e59a4b5acc1ccb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga79d59aa3cb3a7c664e59a4b5acc1ccb6">◆ </a></span>createMergeMertens()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d7/dd6/classcv_1_1MergeMertens.html">MergeMertens</a>&gt; cv::createMergeMertens </td>
          <td>(</td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>contrast_weight</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>saturation_weight</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>exposure_weight</em> = <code>0.0f</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.createMergeMertens(</td><td class="paramname">[, contrast_weight[, saturation_weight[, exposure_weight]]]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<p>Creates <a class="el" href="../../d7/dd6/classcv_1_1MergeMertens.html" title="Pixels are weighted using contrast, saturation and well-exposedness measures, than images are combine...">MergeMertens</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">contrast_weight</td><td>contrast measure weight. See <a class="el" href="../../d7/dd6/classcv_1_1MergeMertens.html" title="Pixels are weighted using contrast, saturation and well-exposedness measures, than images are combine...">MergeMertens</a>. </td></tr>
    <tr><td class="paramname">saturation_weight</td><td>saturation measure weight </td></tr>
    <tr><td class="paramname">exposure_weight</td><td>well-exposedness measure weight </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="ga460d4a1df1a7e8cdcf7445bb87a8fb78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga460d4a1df1a7e8cdcf7445bb87a8fb78">◆ </a></span>createMergeRobertson()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d7/d5b/classcv_1_1MergeRobertson.html">MergeRobertson</a>&gt; cv::createMergeRobertson </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.createMergeRobertson(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<p>Creates <a class="el" href="../../d7/d5b/classcv_1_1MergeRobertson.html" title="The resulting HDR image is calculated as weighted average of the exposures considering exposure value...">MergeRobertson</a> object. </p>
</div>
</div>
<a id="gabcbd653140b93a1fa87ccce94548cd0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabcbd653140b93a1fa87ccce94548cd0d">◆ </a></span>createTonemap()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d8/d5e/classcv_1_1Tonemap.html">Tonemap</a>&gt; cv::createTonemap </td>
          <td>(</td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>gamma</em> = <code>1.0f</code></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.createTonemap(</td><td class="paramname">[, gamma]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<p>Creates simple linear mapper with gamma correction. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gamma</td><td>positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma equal to 2.2f is suitable for most displays. Generally gamma &gt; 1 brightens the image and gamma &lt; 1 darkens it. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="ga72bf92bb6b8653ee4be650ac01cf50b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72bf92bb6b8653ee4be650ac01cf50b6">◆ </a></span>createTonemapDrago()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../da/d53/classcv_1_1TonemapDrago.html">TonemapDrago</a>&gt; cv::createTonemapDrago </td>
          <td>(</td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>gamma</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>saturation</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>bias</em> = <code>0.85f</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.createTonemapDrago(</td><td class="paramname">[, gamma[, saturation[, bias]]]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<p>Creates <a class="el" href="../../da/d53/classcv_1_1TonemapDrago.html" title="Adaptive logarithmic mapping is a fast global tonemapping algorithm that scales the image in logarith...">TonemapDrago</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gamma</td><td>gamma value for gamma correction. See createTonemap </td></tr>
    <tr><td class="paramname">saturation</td><td>positive saturation enhancement value. 1.0 preserves saturation, values greater than 1 increase saturation and values less than 1 decrease it. </td></tr>
    <tr><td class="paramname">bias</td><td>value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best results, default value is 0.85. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="ga3b3f3bf083b7515802f039a6a70f2d21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b3f3bf083b7515802f039a6a70f2d21">◆ </a></span>createTonemapMantiuk()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../de/d76/classcv_1_1TonemapMantiuk.html">TonemapMantiuk</a>&gt; cv::createTonemapMantiuk </td>
          <td>(</td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>gamma</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>scale</em> = <code>0.7f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>saturation</em> = <code>1.0f</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.createTonemapMantiuk(</td><td class="paramname">[, gamma[, scale[, saturation]]]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<p>Creates <a class="el" href="../../de/d76/classcv_1_1TonemapMantiuk.html" title="This algorithm transforms image to contrast using gradients on all levels of gaussian pyramid...">TonemapMantiuk</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gamma</td><td>gamma value for gamma correction. See createTonemap </td></tr>
    <tr><td class="paramname">scale</td><td>contrast scale factor. HVS response is multiplied by this parameter, thus compressing dynamic range. Values from 0.6 to 0.9 produce best results. </td></tr>
    <tr><td class="paramname">saturation</td><td>saturation enhancement value. See createTonemapDrago </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="gadabe7f6bf1fa96ad0fd644df9182c2fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadabe7f6bf1fa96ad0fd644df9182c2fb">◆ </a></span>createTonemapReinhard()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d0/dec/classcv_1_1TonemapReinhard.html">TonemapReinhard</a>&gt; cv::createTonemapReinhard </td>
          <td>(</td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>gamma</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>intensity</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>light_adapt</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>color_adapt</em> = <code>0.0f</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.createTonemapReinhard(</td><td class="paramname">[, gamma[, intensity[, light_adapt[, color_adapt]]]]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p><code>#include &lt;<a class="el" href="../../dc/d81/photo_8hpp.html">opencv2/photo.hpp</a>&gt;</code></p>
<p>Creates <a class="el" href="../../d0/dec/classcv_1_1TonemapReinhard.html" title="This is a global tonemapping operator that models human visual system. ">TonemapReinhard</a> object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gamma</td><td>gamma value for gamma correction. See createTonemap </td></tr>
    <tr><td class="paramname">intensity</td><td>result intensity in [-8, 8] range. Greater intensity produces brighter results. </td></tr>
    <tr><td class="paramname">light_adapt</td><td>light adaptation in [0, 1] range. If 1 adaptation is based only on pixel value, if 0 it's global, otherwise it's a weighted mean of this two cases. </td></tr>
    <tr><td class="paramname">color_adapt</td><td>chromatic adaptation in [0, 1] range. If 1 channels are treated independently, if 0 adaptation level is the same for each channel. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:41 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
